//============================================================================
// Copyright (C) 2003-2013 Brett R. Jones 
// All Rights Reserved
//
// You may redistribute and/or modify for non commercial and commercial uses 
// provided this copyright notice remains in place and is not modified
//
// This code is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//
// brettjones1900@gmail.com
// http://www.p2panarchy.com
//============================================================================

#include "VxPktLib.h"
#include <stdarg.h>
#include <stdio.h>

//---------------------------------------------------------------------------
//=== constructor ===//
VxPktHandler::VxPktHandler()
{
	for( int i = 1; i <= MAX_TOTAL_PKT_TYPE; i++ )
	{
		m_aBasePktFuncTable[ i ] = &VxPktHandler::OnUnhandledPkt;
	}
	m_aBasePktFuncTable[ 0 ] = &VxPktHandler::OnInvalidPkt;
	m_aBasePktFuncTable[ PKT_TYPE_KEY_REQ ] = &VxPktHandler::OnPktKeyReq;
	m_aBasePktFuncTable[ PKT_TYPE_KEY_REPLY ] = &VxPktHandler::OnPktKeyReply;
	m_aBasePktFuncTable[ PKT_TYPE_FILE_CHUNK ] = &VxPktHandler::OnPktFileChunk;
	m_aBasePktFuncTable[ PKT_TYPE_FILE_CHUNK_ACK ] = &VxPktHandler::OnPktFileChunkAck;
	m_aBasePktFuncTable[ PKT_TYPE_CMD_BIN_REQ ] = &VxPktHandler::OnPktCmdBinReq;
	m_aBasePktFuncTable[ PKT_TYPE_CMD_BIN_REPLY ] = &VxPktHandler::OnPktCmdBinReply;
	m_aBasePktFuncTable[ PKT_TYPE_CMD_1ARG_REQ ] = &VxPktHandler::OnPktCmd1ArgReq;
	m_aBasePktFuncTable[ PKT_TYPE_CMD_1ARG_REPLY ] = &VxPktHandler::OnPktCmd1ArgReply;
	m_aBasePktFuncTable[ PKT_TYPE_CMD_2ARG_REQ ] = &VxPktHandler::OnPktCmd2ArgReq;
	m_aBasePktFuncTable[ PKT_TYPE_CMD_2ARG_REPLY ] = &VxPktHandler::OnPktCmd2ArgReply;
	m_aBasePktFuncTable[ PKT_TYPE_CMD_3ARG_REQ ] = &VxPktHandler::OnPktCmd3ArgReq;
	m_aBasePktFuncTable[ PKT_TYPE_CMD_3ARG_REPLY ] = &VxPktHandler::OnPktCmd3ArgReply;
	m_aBasePktFuncTable[ PKT_TYPE_FILE_SEND_COMPLETE ] = &VxPktHandler::OnPktFileSendComplete;
	m_aBasePktFuncTable[ PKT_TYPE_FILE_SEND_COMPLETE_ACK ] = &VxPktHandler::OnPktFileSendCompleteAck;
	m_aBasePktFuncTable[ PKT_TYPE_FILE_GET_COMPLETE ] = &VxPktHandler::OnPktFileGetComplete;
	m_aBasePktFuncTable[ PKT_TYPE_AVAIL_DRIVES_REQ ] = &VxPktHandler::OnPktAvailDrivesReq;
	m_aBasePktFuncTable[ PKT_TYPE_AVAIL_DRIVES_REPLY ] = &VxPktHandler::OnPktAvailDrivesReply;
	m_aBasePktFuncTable[ PKT_TYPE_FILE_LIST_REQ ] = &VxPktHandler::OnPktFileListReq	;
	m_aBasePktFuncTable[ PKT_TYPE_FILE_LIST_REPLY ] = &VxPktHandler::OnPktFileListReply	;
	m_aBasePktFuncTable[ PKT_TYPE_IM_ALIVE_REQ ] = &VxPktHandler::OnPktImAliveReq	;
	m_aBasePktFuncTable[ PKT_TYPE_IM_ALIVE_REPLY ] = &VxPktHandler::OnPktImAliveReply	;

	m_aBasePktFuncTable[ PKT_TYPE_CHALLENGE_REQ ] = &VxPktHandler::OnPktChallengeReq;
	m_aBasePktFuncTable[ PKT_TYPE_CHALLENGE_REPLY ] = &VxPktHandler::OnPktChallengeReply;
	m_aBasePktFuncTable[ PKT_TYPE_SESSION_REQ ] = &VxPktHandler::OnPktSessionReq;
	m_aBasePktFuncTable[ PKT_TYPE_SESSION_REPLY ] = &VxPktHandler::OnPktSessionReply;

	m_aBasePktFuncTable[ PKT_TYPE_LOG_ENTRY ] = &VxPktHandler::OnPktLogEntry		;
	m_aBasePktFuncTable[ PKT_TYPE_DEBUG ] = &VxPktHandler::OnPktDebug			;
	m_aBasePktFuncTable[ PKT_TYPE_UPDATE ] = &VxPktHandler::OnPktUpdate		;
	m_aBasePktFuncTable[ 29 ] = &VxPktHandler::OnPktAdmin29;
	m_aBasePktFuncTable[ 30 ] = &VxPktHandler::OnPktAdmin30;
	m_aBasePktFuncTable[ 31 ] = &VxPktHandler::OnPktAdmin31;
	m_aBasePktFuncTable[ 32 ] = &VxPktHandler::OnPktAdmin32;
	m_aBasePktFuncTable[ 33 ] = &VxPktHandler::OnPktAdmin33;
	m_aBasePktFuncTable[ 34 ] = &VxPktHandler::OnPktAdmin34;
	m_aBasePktFuncTable[ 35 ] = &VxPktHandler::OnPktAdmin35;
	m_aBasePktFuncTable[ 36 ] = &VxPktHandler::OnPktAdmin36;
	m_aBasePktFuncTable[ 37 ] = &VxPktHandler::OnPktAdmin37;
	m_aBasePktFuncTable[ 38 ] = &VxPktHandler::OnPktAdmin38;
	m_aBasePktFuncTable[ 39 ] = &VxPktHandler::OnPktAdmin39;
	m_aBasePktFuncTable[ 40 ] = &VxPktHandler::OnPktAdmin40;
	m_aBasePktFuncTable[ 41 ] = &VxPktHandler::OnPktAdmin41;
	m_aBasePktFuncTable[ 42 ] = &VxPktHandler::OnPktAdmin42;
	m_aBasePktFuncTable[ 43 ] = &VxPktHandler::OnPktAdmin43;
	m_aBasePktFuncTable[ 44 ] = &VxPktHandler::OnPktAdmin44;
	m_aBasePktFuncTable[ 45 ] = &VxPktHandler::OnPktAdmin45;
	m_aBasePktFuncTable[ 46 ] = &VxPktHandler::OnPktAdmin46;
	m_aBasePktFuncTable[ 47 ] = &VxPktHandler::OnPktAdmin47;
	m_aBasePktFuncTable[ 48 ] = &VxPktHandler::OnPktAdmin48;
	m_aBasePktFuncTable[ 49 ] = &VxPktHandler::OnPktAdmin49;

	//=== game engine packets ===//
	// these packets start at packet type 50
	m_aBasePktFuncTable[ PKT_TYPE_ADD_TO_CONTAINER ] = &VxPktHandler::OnPktAddToContainer;
	m_aBasePktFuncTable[ PKT_TYPE_ADMIN ]			= &VxPktHandler::OnPktAdmin;
	m_aBasePktFuncTable[ PKT_TYPE_ANIM ]			= &VxPktHandler::OnPktAnim;
	m_aBasePktFuncTable[ PKT_TYPE_ATTACK_REQ ]		= &VxPktHandler::OnPktAttackReq;
	m_aBasePktFuncTable[ PKT_TYPE_ATTACK_REPLY ]	= &VxPktHandler::OnPktAttackReply;
	m_aBasePktFuncTable[ PKT_TYPE_AVATAR_CREATE_REQ ] = &VxPktHandler::OnPktAvatarCreateReq	;
	m_aBasePktFuncTable[ PKT_TYPE_AVATAR_CREATE_REPLY ] = &VxPktHandler::OnPktAvatarCreateReply	;
	m_aBasePktFuncTable[ PKT_TYPE_AVATAR_DELETE_REQ ] = &VxPktHandler::OnPktAvatarDeleteReq	;
	m_aBasePktFuncTable[ PKT_TYPE_AVATAR_DELETE_REPLY ] = &VxPktHandler::OnPktAvatarDeleteReply	;
	m_aBasePktFuncTable[ PKT_TYPE_AVATAR_PLAY_REQ ] = &VxPktHandler::OnPktAvatarPlayReq	;
	m_aBasePktFuncTable[ PKT_TYPE_AVATAR_PLAY_REPLY ] = &VxPktHandler::OnPktAvatarPlayReply	;
	m_aBasePktFuncTable[ PKT_TYPE_AVATAR_CHECK_NAME_REQ ] = &VxPktHandler::OnPktAvatarCheckNameReq;
	m_aBasePktFuncTable[ PKT_TYPE_AVATAR_CHECK_NAME_REPLY ] = &VxPktHandler::OnPktAvatarCheckNameReply;
	m_aBasePktFuncTable[ PKT_TYPE_AVATAR_EXIT_REQ ] = &VxPktHandler::OnPktAvatarExitReq	;
	m_aBasePktFuncTable[ PKT_TYPE_AVATAR_EXIT_REPLY ] = &VxPktHandler::OnPktAvatarExitReply	;
	m_aBasePktFuncTable[ PKT_TYPE_ENT_POS_REQ ]		= &VxPktHandler::OnPktEntPosReq; 
	m_aBasePktFuncTable[ PKT_TYPE_ENT_POS_REPLY ]	= &VxPktHandler::OnPktEntPosReply; 
	m_aBasePktFuncTable[ PKT_TYPE_ENT_MOVE_REQ ]	= &VxPktHandler::OnPktEntMoveReq;
	m_aBasePktFuncTable[ PKT_TYPE_ENT_MOVE_REPLY ]	= &VxPktHandler::OnPktEntMoveReply;
	m_aBasePktFuncTable[ PKT_TYPE_BUY ]				= &VxPktHandler::OnPktBuy;
	m_aBasePktFuncTable[ PKT_TYPE_CHAR_INFO ]		= &VxPktHandler::OnPktCharInfo;
	m_aBasePktFuncTable[ PKT_TYPE_CLICK ]			= &VxPktHandler::OnPktClick;
	m_aBasePktFuncTable[ PKT_TYPE_CONTAINER_CONTENT ] = &VxPktHandler::OnPktContainerContent;
	m_aBasePktFuncTable[ PKT_TYPE_DELETE_OBJ ]		= &VxPktHandler::OnPktDeleteObj;
	m_aBasePktFuncTable[ PKT_TYPE_DISCONNECT ]		= &VxPktHandler::OnPktDisconnect;
	m_aBasePktFuncTable[ PKT_TYPE_DRAGGING ]		= &VxPktHandler::OnPktDragging;
	m_aBasePktFuncTable[ PKT_TYPE_DRAW_CONTAINER ]	= &VxPktHandler::OnPktDrawContainer	;
	m_aBasePktFuncTable[ PKT_TYPE_EFFECT ]			= &VxPktHandler::OnPktEffect;
	m_aBasePktFuncTable[ PKT_TYPE_FIGHT_OCCURRING ] = &VxPktHandler::OnPktFightOccurring;
	m_aBasePktFuncTable[ PKT_TYPE_ITEM_DROP ]		= &VxPktHandler::OnPktItemDrop;
	m_aBasePktFuncTable[ PKT_TYPE_ITEM_PICKUP ]		= &VxPktHandler::OnPktItemPickup;
	m_aBasePktFuncTable[ PKT_TYPE_ITEM_STATE ]		= &VxPktHandler::OnPktItemState	;
	m_aBasePktFuncTable[ PKT_TYPE_LIGHT ]			= &VxPktHandler::OnPktLight;
	m_aBasePktFuncTable[ PKT_TYPE_LOGIN_REQ ]		= &VxPktHandler::OnPktLoginReq;
	m_aBasePktFuncTable[ PKT_TYPE_LOGIN_REPLY ]		= &VxPktHandler::OnPktLoginReply;
	m_aBasePktFuncTable[ PKT_TYPE_MOBILE_ATTR ]		= &VxPktHandler::OnPktMobileAttr;
	m_aBasePktFuncTable[ PKT_TYPE_PLAYER_STAT_REQ ] = &VxPktHandler::OnPktPlayerStatReq;
	m_aBasePktFuncTable[ PKT_TYPE_PLAYER_STAT_REPLY ] = &VxPktHandler::OnPktPlayerStatReply;
	m_aBasePktFuncTable[ PKT_TYPE_PUNISH ]			= &VxPktHandler::OnPktPunish;
	m_aBasePktFuncTable[ PKT_TYPE_RENAME ]			= &VxPktHandler::OnPktRename;
	m_aBasePktFuncTable[ PKT_TYPE_SOUND ]			= &VxPktHandler::OnPktSound;
	m_aBasePktFuncTable[ PKT_TYPE_STAT_WND ]		= &VxPktHandler::OnPktStatWnd;
	m_aBasePktFuncTable[ PKT_TYPE_TALK ]			= &VxPktHandler::OnPktTalk;
	m_aBasePktFuncTable[ PKT_TYPE_TARGETING ]		= &VxPktHandler::OnPktTargeting;
	m_aBasePktFuncTable[ PKT_TYPE_TIME ]			= &VxPktHandler::OnPktTime;
	m_aBasePktFuncTable[ PKT_TYPE_TRADE ]			= &VxPktHandler::OnPktTrade;
	m_aBasePktFuncTable[ PKT_TYPE_UPDATE_CHAR ]		= &VxPktHandler::OnPktUpdateChar;
	m_aBasePktFuncTable[ PKT_TYPE_WARN ]			= &VxPktHandler::OnPktWarn;
	m_aBasePktFuncTable[ PKT_TYPE_WEATHER ]			= &VxPktHandler::OnPktWeather;
	m_aBasePktFuncTable[ PKT_TYPE_WEB_BROWSE ]		= &VxPktHandler::OnPktWebBrowse;
	m_aBasePktFuncTable[ PKT_TYPE_WORN_ITEM ]		= &VxPktHandler::OnPktWornItem;
	m_aBasePktFuncTable[ PKT_TYPE_PET_LIST ]		= &VxPktHandler::OnPktPetList;
	m_aBasePktFuncTable[ PKT_TYPE_GAME_ACCTS_REQ ]	= &VxPktHandler::OnPktGameAcctsReq;
	m_aBasePktFuncTable[ PKT_TYPE_GAME_ACCTS_REPLY ] = &VxPktHandler::OnPktGameAcctsReply;
	m_aBasePktFuncTable[ PKT_TYPE_ENTER_GAME_REQ ]	= &VxPktHandler::OnPktEnterGameReq;
	m_aBasePktFuncTable[ PKT_TYPE_ENTER_GAME_REPLY ] = &VxPktHandler::OnPktEnterGameReply;
	m_aBasePktFuncTable[ PKT_TYPE_SRV_ANN_REQ ]		= &VxPktHandler::OnPktSrvAnnounceReq;
	m_aBasePktFuncTable[ PKT_TYPE_SRV_ANN_REPLY ]	= &VxPktHandler::OnPktSrvAnnounceReply;
	m_aBasePktFuncTable[ PKT_TYPE_ACCT_CREATE_REQ ] = &VxPktHandler::OnPktAcctCreateReq	;
	m_aBasePktFuncTable[ PKT_TYPE_ACCT_CREATE_REPLY ] = &VxPktHandler::OnPktAcctCreateReply;
	m_aBasePktFuncTable[ PKT_TYPE_GAME_LOGIN_CHALLENGE_REQ ] = &VxPktHandler::OnPktGameLoginChallengeReq;
	m_aBasePktFuncTable[ PKT_TYPE_GAME_LOGIN_CHALLENGE_REPLY ] = &VxPktHandler::OnPktGameLoginChallengeReply;
	m_aBasePktFuncTable[ PKT_TYPE_CREATURE_REQ ]		= &VxPktHandler::OnPktCreatureReq; 
	m_aBasePktFuncTable[ PKT_TYPE_CREATURE_REPLY ]		= &VxPktHandler::OnPktCreatureReply; //110
	m_aBasePktFuncTable[ PKT_TYPE_CREATURE_STATUS_REQ ] = &VxPktHandler::OnPktCreatureStatusReq; 
	m_aBasePktFuncTable[ PKT_TYPE_CREATURE_STATUS_REPLY ] = &VxPktHandler::OnPktCreatureStatusReply; 
	m_aBasePktFuncTable[ PKT_TYPE_ITEM_REQ ]			= &VxPktHandler::OnPktItemReq; 
	m_aBasePktFuncTable[ PKT_TYPE_ITEM_REPLY ]			= &VxPktHandler::OnPktItemReply; 
	m_aBasePktFuncTable[ PKT_TYPE_ITEM_STATUS_REQ ]		= &VxPktHandler::OnPktItemStatusReq; 
	m_aBasePktFuncTable[ PKT_TYPE_ITEM_STATUS_REPLY ]	= &VxPktHandler::OnPktItemStatusReply; 
	m_aBasePktFuncTable[ PKT_TYPE_PLAYER_REQ ]			= &VxPktHandler::OnPktPlayerReq; 
	m_aBasePktFuncTable[ PKT_TYPE_PLAYER_REPLY ]		= &VxPktHandler::OnPktPlayerReply; 
	m_aBasePktFuncTable[ PKT_TYPE_PLAYER_STATUS_REQ ]	= &VxPktHandler::OnPktPlayerStatusReq; 
	m_aBasePktFuncTable[ PKT_TYPE_PLAYER_STATUS_REPLY ] = &VxPktHandler::OnPktPlayerStatusReply; 
	m_aBasePktFuncTable[ PKT_TYPE_PLACEABLE_REQ ]		= &VxPktHandler::OnPktPlaceableReq; 
	m_aBasePktFuncTable[ PKT_TYPE_PLACEABLE_REPLY ]		= &VxPktHandler::OnPktPlaceableReply; 
	m_aBasePktFuncTable[ PKT_TYPE_PORTAL_REQ ]			= &VxPktHandler::OnPktPortalReq; 
	m_aBasePktFuncTable[ PKT_TYPE_PORTAL_REPLY ]		= &VxPktHandler::OnPktPortalReply; 
	m_aBasePktFuncTable[ PKT_TYPE_TELEPORT_REQ ]		= &VxPktHandler::OnPktTeleportReq; 
	m_aBasePktFuncTable[ PKT_TYPE_TELEPORT_REPLY ]		= &VxPktHandler::OnPktTeleportReply; 
	m_aBasePktFuncTable[ 127 ] = &VxPktHandler::OnPktGEngine127; 
	m_aBasePktFuncTable[ 128 ] = &VxPktHandler::OnPktGEngine128; 
	m_aBasePktFuncTable[ 129 ] = &VxPktHandler::OnPktGEngine129; 
	m_aBasePktFuncTable[ 130 ] = &VxPktHandler::OnPktGEngine130; 
	m_aBasePktFuncTable[ 131 ] = &VxPktHandler::OnPktGEngine131; 
	m_aBasePktFuncTable[ 132 ] = &VxPktHandler::OnPktGEngine132; 
	m_aBasePktFuncTable[ 133 ] = &VxPktHandler::OnPktGEngine133; 
	m_aBasePktFuncTable[ 134 ] = &VxPktHandler::OnPktGEngine134; 
	m_aBasePktFuncTable[ 135 ] = &VxPktHandler::OnPktGEngine135; 
	m_aBasePktFuncTable[ 136 ] = &VxPktHandler::OnPktGEngine136; 
	m_aBasePktFuncTable[ 137 ] = &VxPktHandler::OnPktGEngine137; 
	m_aBasePktFuncTable[ 138 ] = &VxPktHandler::OnPktGEngine138; 
	m_aBasePktFuncTable[ 139 ] = &VxPktHandler::OnPktGEngine139; 
	m_aBasePktFuncTable[ 140 ] = &VxPktHandler::OnPktGEngine140; 
	m_aBasePktFuncTable[ 141 ] = &VxPktHandler::OnPktGEngine141; 
	m_aBasePktFuncTable[ 142 ] = &VxPktHandler::OnPktGEngine142; 
	m_aBasePktFuncTable[ 143 ] = &VxPktHandler::OnPktGEngine143; 
	m_aBasePktFuncTable[ 144 ] = &VxPktHandler::OnPktGEngine144; 
	m_aBasePktFuncTable[ 145 ] = &VxPktHandler::OnPktGEngine145; 
	m_aBasePktFuncTable[ 146 ] = &VxPktHandler::OnPktGEngine146; 
	m_aBasePktFuncTable[ 147 ] = &VxPktHandler::OnPktGEngine147; 
	m_aBasePktFuncTable[ 148 ] = &VxPktHandler::OnPktGEngine148; 
	m_aBasePktFuncTable[ 149 ] = &VxPktHandler::OnPktGEngine149; 

	//=== user defined game engine packets ===//
	//! these packets start at packet type 150
	//! individual games should start their packet types/handlers here
	//! so that when new versions of the game engine come out it does not
	//! have conflicts with the various existing games
	m_aBasePktFuncTable[ 150 ] = &VxPktHandler::OnPktGUser150; // packet type 150.. start of user defined packets
	m_aBasePktFuncTable[ 151 ] = &VxPktHandler::OnPktGUser151; 
	m_aBasePktFuncTable[ 152 ] = &VxPktHandler::OnPktGUser152; 
	m_aBasePktFuncTable[ 153 ] = &VxPktHandler::OnPktGUser153; 
	m_aBasePktFuncTable[ 154 ] = &VxPktHandler::OnPktGUser154; 
	m_aBasePktFuncTable[ 155 ] = &VxPktHandler::OnPktGUser155; 
	m_aBasePktFuncTable[ 156 ] = &VxPktHandler::OnPktGUser156; 
	m_aBasePktFuncTable[ 157 ] = &VxPktHandler::OnPktGUser157; 
	m_aBasePktFuncTable[ 158 ] = &VxPktHandler::OnPktGUser158; 
	m_aBasePktFuncTable[ 159 ] = &VxPktHandler::OnPktGUser159; 
	m_aBasePktFuncTable[ 160 ] = &VxPktHandler::OnPktGUser160; 
	m_aBasePktFuncTable[ 161 ] = &VxPktHandler::OnPktGUser161; 
	m_aBasePktFuncTable[ 162 ] = &VxPktHandler::OnPktGUser162; 
	m_aBasePktFuncTable[ 163 ] = &VxPktHandler::OnPktGUser163; 
	m_aBasePktFuncTable[ 164 ] = &VxPktHandler::OnPktGUser164; 
	m_aBasePktFuncTable[ 165 ] = &VxPktHandler::OnPktGUser165; 
	m_aBasePktFuncTable[ 166 ] = &VxPktHandler::OnPktGUser166; 
	m_aBasePktFuncTable[ 167 ] = &VxPktHandler::OnPktGUser167; 
	m_aBasePktFuncTable[ 168 ] = &VxPktHandler::OnPktGUser168; 
	m_aBasePktFuncTable[ 169 ] = &VxPktHandler::OnPktGUser169; 
	m_aBasePktFuncTable[ 170 ] = &VxPktHandler::OnPktGUser170; 
	m_aBasePktFuncTable[ 171 ] = &VxPktHandler::OnPktGUser171; 
	m_aBasePktFuncTable[ 172 ] = &VxPktHandler::OnPktGUser172; 
	m_aBasePktFuncTable[ 173 ] = &VxPktHandler::OnPktGUser173; 
	m_aBasePktFuncTable[ 174 ] = &VxPktHandler::OnPktGUser174; 
	m_aBasePktFuncTable[ 175 ] = &VxPktHandler::OnPktGUser175; 
	m_aBasePktFuncTable[ 176 ] = &VxPktHandler::OnPktGUser176; 
	m_aBasePktFuncTable[ 177 ] = &VxPktHandler::OnPktGUser177; 
	m_aBasePktFuncTable[ 178 ] = &VxPktHandler::OnPktGUser178; 
	m_aBasePktFuncTable[ 179 ] = &VxPktHandler::OnPktGUser179; 
	m_aBasePktFuncTable[ 180 ] = &VxPktHandler::OnPktGUser180; 
	m_aBasePktFuncTable[ 181 ] = &VxPktHandler::OnPktGUser181; 
	m_aBasePktFuncTable[ 183 ] = &VxPktHandler::OnPktGUser182; 
	m_aBasePktFuncTable[ 183 ] = &VxPktHandler::OnPktGUser183; 
	m_aBasePktFuncTable[ 184 ] = &VxPktHandler::OnPktGUser184; 
	m_aBasePktFuncTable[ 185 ] = &VxPktHandler::OnPktGUser185; 
	m_aBasePktFuncTable[ 186 ] = &VxPktHandler::OnPktGUser186; 
	m_aBasePktFuncTable[ 187 ] = &VxPktHandler::OnPktGUser187; 
	m_aBasePktFuncTable[ 188 ] = &VxPktHandler::OnPktGUser188; 
	m_aBasePktFuncTable[ 189 ] = &VxPktHandler::OnPktGUser189; 
	m_aBasePktFuncTable[ 190 ] = &VxPktHandler::OnPktGUser190; 
	m_aBasePktFuncTable[ 191 ] = &VxPktHandler::OnPktGUser191; 
	m_aBasePktFuncTable[ 192 ] = &VxPktHandler::OnPktGUser192; 
	m_aBasePktFuncTable[ 193 ] = &VxPktHandler::OnPktGUser193; 
	m_aBasePktFuncTable[ 194 ] = &VxPktHandler::OnPktGUser194; 
	m_aBasePktFuncTable[ 195 ] = &VxPktHandler::OnPktGUser195; 
	m_aBasePktFuncTable[ 196 ] = &VxPktHandler::OnPktGUser196; 
	m_aBasePktFuncTable[ 197 ] = &VxPktHandler::OnPktGUser197; 
	m_aBasePktFuncTable[ 198 ] = &VxPktHandler::OnPktGUser198; 
	m_aBasePktFuncTable[ 199 ] = &VxPktHandler::OnPktGUser199; 
	m_aBasePktFuncTable[ 200 ] = &VxPktHandler::OnPktGUser200; 
	m_aBasePktFuncTable[ 201 ] = &VxPktHandler::OnPktGUser201; 
	m_aBasePktFuncTable[ 202 ] = &VxPktHandler::OnPktGUser202; 
	m_aBasePktFuncTable[ 203 ] = &VxPktHandler::OnPktGUser203; 
	m_aBasePktFuncTable[ 204 ] = &VxPktHandler::OnPktGUser204; 
	m_aBasePktFuncTable[ 205 ] = &VxPktHandler::OnPktGUser205; 
	m_aBasePktFuncTable[ 206 ] = &VxPktHandler::OnPktGUser206; 
	m_aBasePktFuncTable[ 207 ] = &VxPktHandler::OnPktGUser207; 
	m_aBasePktFuncTable[ 208 ] = &VxPktHandler::OnPktGUser208; 
	m_aBasePktFuncTable[ 209 ] = &VxPktHandler::OnPktGUser209; 
	m_aBasePktFuncTable[ 210 ] = &VxPktHandler::OnPktGUser210; 
	m_aBasePktFuncTable[ 211 ] = &VxPktHandler::OnPktGUser211; 
	m_aBasePktFuncTable[ 212 ] = &VxPktHandler::OnPktGUser212; 
	m_aBasePktFuncTable[ 213 ] = &VxPktHandler::OnPktGUser213; 
	m_aBasePktFuncTable[ 214 ] = &VxPktHandler::OnPktGUser214; 
	m_aBasePktFuncTable[ 215 ] = &VxPktHandler::OnPktGUser215; 
	m_aBasePktFuncTable[ 216 ] = &VxPktHandler::OnPktGUser216; 
	m_aBasePktFuncTable[ 217 ] = &VxPktHandler::OnPktGUser217; 
	m_aBasePktFuncTable[ 218 ] = &VxPktHandler::OnPktGUser218; 
	m_aBasePktFuncTable[ 219 ] = &VxPktHandler::OnPktGUser219; 
	m_aBasePktFuncTable[ 220 ] = &VxPktHandler::OnPktGUser220; 
	m_aBasePktFuncTable[ 221 ] = &VxPktHandler::OnPktGUser221; 
	m_aBasePktFuncTable[ 222 ] = &VxPktHandler::OnPktGUser222; 
	m_aBasePktFuncTable[ 223 ] = &VxPktHandler::OnPktGUser223; 
	m_aBasePktFuncTable[ 224 ] = &VxPktHandler::OnPktGUser224; 
	m_aBasePktFuncTable[ 225 ] = &VxPktHandler::OnPktGUser225; 
	m_aBasePktFuncTable[ 226 ] = &VxPktHandler::OnPktGUser226; 
	m_aBasePktFuncTable[ 227 ] = &VxPktHandler::OnPktGUser227; 
	m_aBasePktFuncTable[ 228 ] = &VxPktHandler::OnPktGUser228; 
	m_aBasePktFuncTable[ 229 ] = &VxPktHandler::OnPktGUser229; 
	m_aBasePktFuncTable[ 230 ] = &VxPktHandler::OnPktGUser230; 
	m_aBasePktFuncTable[ 231 ] = &VxPktHandler::OnPktGUser231; 
	m_aBasePktFuncTable[ 232 ] = &VxPktHandler::OnPktGUser232; 
	m_aBasePktFuncTable[ 233 ] = &VxPktHandler::OnPktGUser233; 
	m_aBasePktFuncTable[ 234 ] = &VxPktHandler::OnPktGUser234; 
	m_aBasePktFuncTable[ 235 ] = &VxPktHandler::OnPktGUser235; 
	m_aBasePktFuncTable[ 236 ] = &VxPktHandler::OnPktGUser236; 
	m_aBasePktFuncTable[ 237 ] = &VxPktHandler::OnPktGUser237; 
	m_aBasePktFuncTable[ 238 ] = &VxPktHandler::OnPktGUser238; 
	m_aBasePktFuncTable[ 239 ] = &VxPktHandler::OnPktGUser239; 
	m_aBasePktFuncTable[ 240 ] = &VxPktHandler::OnPktGUser240; 
	m_aBasePktFuncTable[ 241 ] = &VxPktHandler::OnPktGUser241; 
	m_aBasePktFuncTable[ 242 ] = &VxPktHandler::OnPktGUser242; 
	m_aBasePktFuncTable[ 243 ] = &VxPktHandler::OnPktGUser243; 
	m_aBasePktFuncTable[ 244 ] = &VxPktHandler::OnPktGUser244; 
	m_aBasePktFuncTable[ 245 ] = &VxPktHandler::OnPktGUser245; 
	m_aBasePktFuncTable[ 246 ] = &VxPktHandler::OnPktGUser246; 
	m_aBasePktFuncTable[ 247 ] = &VxPktHandler::OnPktGUser247; 
	m_aBasePktFuncTable[ 248 ] = &VxPktHandler::OnPktGUser248; 
	m_aBasePktFuncTable[ 249 ] = &VxPktHandler::OnPktGUser249; 
}
//---------------------------------------------------------------------------
//=== destructor ===//
VxPktHandler::~VxPktHandler()
{
	//empty
}

//---------------------------------------------------------------------------
//=== methods ===//
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//! override this to handle status messages
void VxPktHandler::PktStatusMsg( const char * pMsg, ... )
{
	//build message on stack so no out of memory issue
	char szBuffer[2048];
	va_list argList;
    va_start(argList, pMsg);
	vsnprintf( szBuffer, 2048, pMsg, argList );
	szBuffer[2047] = 0;
    va_end(argList);
	log_msg( 0, szBuffer );
}
//---------------------------------------------------------------------------
//! override this to handle error messages
void VxPktHandler::PktErrorMsg( const char * pMsg, ... )
{
	//build message on stack so no out of memory issue
	char szBuffer[2048];
	va_list argList;
    va_start(argList, pMsg);
	vsnprintf( szBuffer, 2048, pMsg, argList );
	szBuffer[2047] = 0;
    va_end(argList);
	log_msg( 0, szBuffer );
}
//---------------------------------------------------------------------------
//! give apps chance to override and place callers user data in thier own structure
long VxPktHandler::SktSetUserData( VxSktBase * poSkt, void * pvUserData )
{
	return 0;
};
//---------------------------------------------------------------------------
//! give apps chance to override and return callers user data from within thier own structure
long VxPktHandler::SktGetUserData( VxSktBase * poSkt, void ** pvRetUserData )
{
	return 0;
};
//---------------------------------------------------------------------------
//! override this function to close socket connection
long VxPktHandler::VxCloseConnection( VxSktBase * poSkt )
{
	return 0;
}

//---------------------------------------------------------------------------
//! Handle Incoming packet.. use function jump table for speed
long VxPktHandler::VxHandlePkt( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{
	if( poPktHdr->m_u16PktType <= MAX_TOTAL_PKT_TYPE )
		return (this->*m_aBasePktFuncTable[ poPktHdr->m_u16PktType ])(poSkt, poPktHdr, poIdent);
	return OnInvalidPkt(poSkt, poPktHdr, poIdent);
}
//---------------------------------------------------------------------------
//! override this function with your own send packet
//! NOTE: packet length must be a multiple of 16 bytes ( for block encryption )
long VxPktHandler::VxSendPkt( VxSktBase * poSkt, VxPktHdr * poPktHdr, BOOL bDisconnect )
{
	// packet length must be a multiple of 16 bytes ( for block encryption )
	vx_assert( 0 == ( poPktHdr->m_u16PktLen & 0xf ) );
	log_msg( 0,  "VxSendPkt\n" );
	return 0;
}

//---------------------------------------------------------------------------
//! override this function to handle packets for which there was no packet handler
long VxPktHandler::OnUnhandledPkt( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{
	log_msg( 0,  "OnUnhandledPkt\n" );
	return 0;
}
//---------------------------------------------------------------------------
//! override this function to handle packets which had a bad packet number or length etc
long VxPktHandler::OnInvalidPkt( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{
	log_msg( 0,  "OnInvalidPkt\n" );
	return 0;
}


//---------------------------------------------------------------------------
//=== packet handlers for game distribution and administration ====//
//---------------------------------------------------------------------------
//=== packet handlers for game distribution and administration ====//
long VxPktHandler::OnPktKeyReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{ 	
	log_msg( 0,  "OnPktKeyReq\n" );
	return 0;
}
long VxPktHandler::OnPktKeyReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktKeyReply\n" );
	return 0;
}

//---------------------------------------------------------------------------
long VxPktHandler::OnPktFileChunk( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{
	//return RxFileChunk( poSkt, (VxBaseSktInfo *)pvUserData, (PktFileChunk *)poPktHdr );
	return 0;
}

//---------------------------------------------------------------------------
long VxPktHandler::OnPktFileChunkAck( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	//return TxNextFileChunk( poSkt, (VxBaseSktInfo *)pvUserData, (PktFileChunkAck *)poPktHdr );
	return 0;
}

long VxPktHandler::OnPktCmdBinReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{
	log_msg( 0,  "OnPktCmdBinReq\n" );
	return 0;
}
long VxPktHandler::OnPktCmdBinReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktCmdBinReply\n" );
	return 0;
}
long VxPktHandler::OnPktCmd1ArgReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktCmd1ArgReq\n" );
	return 0;
}
long VxPktHandler::OnPktCmd1ArgReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktCmd1ArgReply\n" );
	return 0;
}
long VxPktHandler::OnPktCmd2ArgReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktCmd2ArgReq\n" );
	return 0;
}
long VxPktHandler::OnPktCmd2ArgReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktCmd2ArgReply\n" );
	return 0;
}
long VxPktHandler::OnPktCmd3ArgReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktCmd3ArgReq\n" );
	return 0;
}
long VxPktHandler::OnPktCmd3ArgReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktCmd3ArgReply\n" );
	return 0;
}
long VxPktHandler::OnPktFileSendComplete( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	//return FinishFileRecieve( poSkt, (VxBaseSktInfo *)pvUserData, (PktFileSendComplete *)poPktHdr );
	return 0;
}
long VxPktHandler::OnPktFileSendCompleteAck( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktFileSendCompleteAck\n" );
	return 0;
}
long VxPktHandler::OnPktFileGetComplete( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktFileGetComplete\n" );
	return 0;
}
long VxPktHandler::OnPktFileGetCompleteAck( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktFileGetCompleteAck\n" );
	return 0;
}
long VxPktHandler::OnPktAvailDrivesReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAvailDrivesReq\n" );
	return 0;
}
long VxPktHandler::OnPktAvailDrivesReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAvailDrivesReply\n" );
	return 0;
}
long VxPktHandler::OnPktFileListReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktFileListReq\n" );
	return 0;
}
long VxPktHandler::OnPktFileListReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktFileListReply\n" );
	return 0;
}
long VxPktHandler::OnPktImAliveReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktImAliveReq\n" );
	return 0;
}
long VxPktHandler::OnPktImAliveReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktImAliveReply\n" );
	return 0;
}

long VxPktHandler::OnPktLogEntry		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktLogEntry\n" );
	return 0;
}
long VxPktHandler::OnPktDebug			( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktDebug\n" );
	return 0;
}

long VxPktHandler::OnPktUpdate		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktUpdate\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin29		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin29\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin30		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin30\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin31		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin31\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin32		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin32\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin33		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin33\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin34		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	log_msg( 0,  "OnPktAdmin34\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin35( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin35\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin36( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin36\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin37( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin37\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin38( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin38\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin39( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin39\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin40( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin40\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin41( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin41\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin42		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin42\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin43		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin43\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin44		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin44\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin45		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin45\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin46		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin46\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin47		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin47\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin48		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin48\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin49		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin49\n" );
	return 0;
}

	//=== game engine packets ===//
	// these packets start at packet type 50
long VxPktHandler::OnPktAddToContainer( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAddToContainer\n" );
	return 0;
}
long VxPktHandler::OnPktAdmin			( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAdmin\n" );
	return 0;
}
long VxPktHandler::OnPktAnim			( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAnim\n" );
	return 0;
}
long VxPktHandler::OnPktAvatarCreateReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAvatarCreateReq\n" );
	return 0;
}
long VxPktHandler::OnPktAvatarCreateReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAvatarCreateReply\n" );
	return 0;
}
long VxPktHandler::OnPktAvatarDeleteReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAvatarDeleteReq\n" );
	return 0;
}
long VxPktHandler::OnPktAvatarDeleteReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAvatarDeleteReply\n" );
	return 0;
}
long VxPktHandler::OnPktAvatarPlayReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAvatarPlayReq\n" );
	return 0;
}
long VxPktHandler::OnPktAvatarPlayReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAvatarPlayReply\n" );
	return 0;
}
long VxPktHandler::OnPktAvatarCheckNameReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAvatarCheckNameReq\n" );
	return 0;
}
long VxPktHandler::OnPktAvatarCheckNameReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAvatarCheckNameReply\n" );
	return 0;
}
long VxPktHandler::OnPktAvatarExitReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAvatarExitReq\n" );
	return 0;
}
long VxPktHandler::OnPktAvatarExitReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAvatarExitReply\n" );
	return 0;
}
long VxPktHandler::OnPktAttackReq		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAttackReq\n" );
	return 0;
}
long VxPktHandler::OnPktAttackReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAttackReply\n" );
	return 0;
}
long VxPktHandler::OnPktBuy			( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktBuy\n" );
	return 0;
}
long VxPktHandler::OnPktCharInfo		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktCharInfo\n" );
	return 0;
}
long VxPktHandler::OnPktClick			( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktClick\n" );
	return 0;
}
long VxPktHandler::OnPktContainerContent( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktContainerContent\n" );
	return 0;
}
long VxPktHandler::OnPktDeleteObj		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktDeleteObj\n" );
	return 0;
}
long VxPktHandler::OnPktDisconnect( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktDisconnect\n" );
	return 0;
}
long VxPktHandler::OnPktDragging		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktDragging\n" );
	return 0;
}
long VxPktHandler::OnPktDrawContainer	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktDrawContainer\n" );
	return 0;
}
long VxPktHandler::OnPktEffect		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktEffect\n" );
	return 0;
}
long VxPktHandler::OnPktFightOccurring( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktFightOccurring\n" );
	return 0;
}
long VxPktHandler::OnPktItemDrop		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktItemDrop\n" );
	return 0;
}
long VxPktHandler::OnPktItemPickup	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktItemPickup\n" );
	return 0;
}
long VxPktHandler::OnPktItemState		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktItemState\n" );
	return 0;
}
long VxPktHandler::OnPktLight			( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktLight\n" );
	return 0;
}
long VxPktHandler::OnPktLoginReq		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktLoginReq\n" );
	return 0;
}
long VxPktHandler::OnPktLoginReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktLoginReply\n" );
	return 0;
}
long VxPktHandler::OnPktMobileAttr	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktMobileAttr\n" );
	return 0;
}
long VxPktHandler::OnPktPlayerStatReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktPlayerStatReq\n" );
	return 0;
}
long VxPktHandler::OnPktPlayerStatReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktPlayerStatReply\n" );
	return 0;
}
long VxPktHandler::OnPktPunish		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktPunish\n" );
	return 0;
}
long VxPktHandler::OnPktRename		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktRename\n" );
	return 0;
}
long VxPktHandler::OnPktSound			( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktSound\n" );
	return 0;
}
long VxPktHandler::OnPktStatWnd		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktStatWnd\n" );
	return 0;
}
long VxPktHandler::OnPktTalk			( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktTalk\n" );
	return 0;
}
long VxPktHandler::OnPktTargeting		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktTargeting\n" );
	return 0;
}
long VxPktHandler::OnPktTime			( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktTime\n" );
	return 0;
}
long VxPktHandler::OnPktTrade			( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktTrade\n" );
	return 0;
}
long VxPktHandler::OnPktUpdateChar	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktUpdateChar\n" );
	return 0;
}
long VxPktHandler::OnPktWarn			( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktWarn\n" );
	return 0;
}
long VxPktHandler::OnPktWeather		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktWeather\n" );
	return 0;
}
long VxPktHandler::OnPktWebBrowse		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktWebBrowse\n" );
	return 0;
}
long VxPktHandler::OnPktWornItem		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktWornItem\n" );
	return 0;
}
long VxPktHandler::OnPktPetList		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktPetList\n" );
	return 0;
}
long VxPktHandler::OnPktGameAcctsReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGameAcctsReq\n" );
	return 0;
}
long VxPktHandler::OnPktGameAcctsReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGameAcctsReply\n" );
	return 0;
}
long VxPktHandler::OnPktEnterGameReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{
	log_msg( 0,  "OnPktEnterGameReq\n" );
	return 0;
}
long VxPktHandler::OnPktEnterGameReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{
	log_msg( 0,  "OnPktEnterGameReply\n" );
	return 0;
}

long VxPktHandler::OnPktChallengeReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktChallengeReq\n" );
	return 0;
}
long VxPktHandler::OnPktChallengeReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktChallengeReply\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktSessionReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktSessionReq\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktSessionReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktSessionReply\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktSrvAnnounceReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktSrvAnnounceReq\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktSrvAnnounceReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktSrvAnnounceReply\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktAcctCreateReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAcctCreateReq\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktAcctCreateReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktAcctCreateReply\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktGameLoginChallengeReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGameLoginChallengeReq\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktGameLoginChallengeReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGameLoginChallengeReply\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktEntPosReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktEntPosReq\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktEntPosReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktEntPosReply\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktEntMoveReq( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktEntMoveReq\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktEntMoveReply( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktEntMoveReply\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktCreatureReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine109\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktCreatureReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine110\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktCreatureStatusReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine111\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktCreatureStatusReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine112\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktItemReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine113\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktItemReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine114\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktItemStatusReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine115\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktItemStatusReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine116\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktPlayerReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine117\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktPlayerReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine118\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktPlayerStatusReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine119\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktPlayerStatusReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine120\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktPlaceableReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktPlaceableReq\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktPlaceableReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktPlaceableReply\n" );
	return 0;
}
//---------------------------------------------------------------------------
long VxPktHandler::OnPktPortalReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine123\n" );
	return 0;
}
long VxPktHandler::OnPktPortalReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine124\n" );
	return 0;
}
long VxPktHandler::OnPktTeleportReq	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine125\n" );
	return 0;
}
long VxPktHandler::OnPktTeleportReply	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine126\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine127	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine127\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine128	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine128\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine129	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine129\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine130	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine130\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine131	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine131\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine132	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine132\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine133	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine133\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine134	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine134\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine135	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine135\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine136	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine136\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine137	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine137\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine138	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine138\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine139	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine139\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine140	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine140\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine141	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine141\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine142	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine142\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine143	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine143\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine144	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine144\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine145	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine145\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine146	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine146\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine147	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine147\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine148	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine148\n" );
	return 0;
}
long VxPktHandler::OnPktGEngine149	( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGEngine149\n" );
	return 0;
}

	//=== user defined game engine packets ===//
	//! these packets start at packet type 150
	//! individual games should start their packet types/handlers here
	//! so that when new versions of the game engine come out it does not
	//! have conflicts with the various existing games
long VxPktHandler::OnPktGUser150		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent ) // packet type 150.. start of user defined packets
{	
	log_msg( 0,  "OnPktGUser150\n" );
	return 0;
}
long VxPktHandler::OnPktGUser151		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser151\n" );
	return 0;
}
long VxPktHandler::OnPktGUser152		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser152\n" );
	return 0;
}
long VxPktHandler::OnPktGUser153		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser153\n" );
	return 0;
}
long VxPktHandler::OnPktGUser154		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser154\n" );
	return 0;
}
long VxPktHandler::OnPktGUser155		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser155\n" );
	return 0;
}
long VxPktHandler::OnPktGUser156		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser156\n" );
	return 0;
}
long VxPktHandler::OnPktGUser157		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser157\n" );
	return 0;
}
long VxPktHandler::OnPktGUser158		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser158\n" );
	return 0;
}
long VxPktHandler::OnPktGUser159		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser159\n" );
	return 0;
}
long VxPktHandler::OnPktGUser160		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser160\n" );
	return 0;
}
long VxPktHandler::OnPktGUser161		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser161\n" );
	return 0;
}
long VxPktHandler::OnPktGUser162		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser162\n" );
	return 0;
}
long VxPktHandler::OnPktGUser163		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser163\n" );
	return 0;
}
long VxPktHandler::OnPktGUser164		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser164\n" );
	return 0;
}
long VxPktHandler::OnPktGUser165		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser165\n" );
	return 0;
}
long VxPktHandler::OnPktGUser166		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser166\n" );
	return 0;
}
long VxPktHandler::OnPktGUser167		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser167\n" );
	return 0;
}
long VxPktHandler::OnPktGUser168		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser168\n" );
	return 0;
}
long VxPktHandler::OnPktGUser169		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser169\n" );
	return 0;
}
long VxPktHandler::OnPktGUser170		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser170\n" );
	return 0;
}
long VxPktHandler::OnPktGUser171		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser171\n" );
	return 0;
}
long VxPktHandler::OnPktGUser172		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser172\n" );
	return 0;
}
long VxPktHandler::OnPktGUser173		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser173\n" );
	return 0;
}
long VxPktHandler::OnPktGUser174		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser174\n" );
	return 0;
}
long VxPktHandler::OnPktGUser175		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser175\n" );
	return 0;
}
long VxPktHandler::OnPktGUser176		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser176\n" );
	return 0;
}
long VxPktHandler::OnPktGUser177		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser177\n" );
	return 0;
}
long VxPktHandler::OnPktGUser178		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser178\n" );
	return 0;
}
long VxPktHandler::OnPktGUser179		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser179\n" );
	return 0;
}
long VxPktHandler::OnPktGUser180		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser180\n" );
	return 0;
}
long VxPktHandler::OnPktGUser181		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser181\n" );
	return 0;
}
long VxPktHandler::OnPktGUser182		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser182\n" );
	return 0;
}
long VxPktHandler::OnPktGUser183		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser183\n" );
	return 0;
}
long VxPktHandler::OnPktGUser184		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser184\n" );
	return 0;
}
long VxPktHandler::OnPktGUser185		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser185\n" );
	return 0;
}
long VxPktHandler::OnPktGUser186		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser186\n" );
	return 0;
}
long VxPktHandler::OnPktGUser187		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser187\n" );
	return 0;
}
long VxPktHandler::OnPktGUser188		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser188\n" );
	return 0;
}
long VxPktHandler::OnPktGUser189		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser189\n" );
	return 0;
}
long VxPktHandler::OnPktGUser190		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser190\n" );
	return 0;
}
long VxPktHandler::OnPktGUser191		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser191\n" );
	return 0;
}
long VxPktHandler::OnPktGUser192		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser192\n" );
	return 0;
}
long VxPktHandler::OnPktGUser193		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser193\n" );
	return 0;
}
long VxPktHandler::OnPktGUser194		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser194\n" );
	return 0;
}
long VxPktHandler::OnPktGUser195		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser195\n" );
	return 0;
}
long VxPktHandler::OnPktGUser196		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser196\n" );
	return 0;
}
long VxPktHandler::OnPktGUser197		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser197\n" );
	return 0;
}
long VxPktHandler::OnPktGUser198		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser198\n" );
	return 0;
}
long VxPktHandler::OnPktGUser199		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser199\n" );
	return 0;
}
long VxPktHandler::OnPktGUser200		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser200\n" );
	return 0;
}
long VxPktHandler::OnPktGUser201		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser201\n" );
	return 0;
}
long VxPktHandler::OnPktGUser202		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser202\n" );
	return 0;
}
long VxPktHandler::OnPktGUser203		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser203\n" );
	return 0;
}
long VxPktHandler::OnPktGUser204		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser204\n" );
	return 0;
}
long VxPktHandler::OnPktGUser205		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser205\n" );
	return 0;
}
long VxPktHandler::OnPktGUser206		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser206\n" );
	return 0;
}
long VxPktHandler::OnPktGUser207		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser207\n" );
	return 0;
}
long VxPktHandler::OnPktGUser208		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser208\n" );
	return 0;
}
long VxPktHandler::OnPktGUser209		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser209\n" );
	return 0;
}
long VxPktHandler::OnPktGUser210		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser210\n" );
	return 0;
}
long VxPktHandler::OnPktGUser211		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser211\n" );
	return 0;
}
long VxPktHandler::OnPktGUser212		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser212\n" );
	return 0;
}
long VxPktHandler::OnPktGUser213		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser213\n" );
	return 0;
}
long VxPktHandler::OnPktGUser214		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser214\n" );
	return 0;
}
long VxPktHandler::OnPktGUser215		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser215\n" );
	return 0;
}
long VxPktHandler::OnPktGUser216		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser216\n" );
	return 0;
}
long VxPktHandler::OnPktGUser217		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser217\n" );
	return 0;
}
long VxPktHandler::OnPktGUser218		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser218\n" );
	return 0;
}
long VxPktHandler::OnPktGUser219		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser219\n" );
	return 0;
}
long VxPktHandler::OnPktGUser220		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser220\n" );
	return 0;
}
long VxPktHandler::OnPktGUser221		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser221\n" );
	return 0;
}
long VxPktHandler::OnPktGUser222		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser222\n" );
	return 0;
}
long VxPktHandler::OnPktGUser223		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser223\n" );
	return 0;
}
long VxPktHandler::OnPktGUser224		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser224\n" );
	return 0;
}
long VxPktHandler::OnPktGUser225		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser225\n" );
	return 0;
}
long VxPktHandler::OnPktGUser226		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser226\n" );
	return 0;
}
long VxPktHandler::OnPktGUser227		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser227\n" );
	return 0;
}
long VxPktHandler::OnPktGUser228		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser228\n" );
	return 0;
}
long VxPktHandler::OnPktGUser229		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser229\n" );
	return 0;
}
long VxPktHandler::OnPktGUser230		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser230\n" );
	return 0;
}
long VxPktHandler::OnPktGUser231		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser231\n" );
	return 0;
}
long VxPktHandler::OnPktGUser232		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser232\n" );
	return 0;
}
long VxPktHandler::OnPktGUser233		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser233\n" );
	return 0;
}
long VxPktHandler::OnPktGUser234		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser234\n" );
	return 0;
}
long VxPktHandler::OnPktGUser235		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser235\n" );
	return 0;
}
long VxPktHandler::OnPktGUser236		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser236\n" );
	return 0;
}
long VxPktHandler::OnPktGUser237		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser237\n" );
	return 0;
}
long VxPktHandler::OnPktGUser238		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser238\n" );
	return 0;
}
long VxPktHandler::OnPktGUser239		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser239\n" );
	return 0;
}
long VxPktHandler::OnPktGUser240		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser240\n" );
	return 0;
}
long VxPktHandler::OnPktGUser241		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser241\n" );
	return 0;
}
long VxPktHandler::OnPktGUser242		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser242\n" );
	return 0;
}
long VxPktHandler::OnPktGUser243		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser243\n" );
	return 0;
}
long VxPktHandler::OnPktGUser244		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser244\n" );
	return 0;
}
long VxPktHandler::OnPktGUser245		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser245\n" );
	return 0;
}
long VxPktHandler::OnPktGUser246		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser246\n" );
	return 0;
}
long VxPktHandler::OnPktGUser247		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser247\n" );
	return 0;
}
long VxPktHandler::OnPktGUser248		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser248\n" );
	return 0;
}
//============================================================================
long VxPktHandler::OnPktGUser249		( VxSktBase * poSkt, VxPktHdr * poPktHdr, VxNetIdent * poIdent )
{	
	log_msg( 0,  "OnPktGUser249\n" );
	return 0;
}
